Third-party software, in some instances, intercepts operating system calls in order to perform various functions. Although the LINUX™ operating system is popular, LINUX™ system calls are more difficult to intercept than system calls in other operating systems, especially as compared to UNIX™. Some of the difficulties with intercepting the system calls include indirect means to read non-exported kernel symbols, special means to overwrite system call vectors (which are normally protected as read-only values), and special ways to handle stub assembler code that is put in place for fork, vfork, execve and clone system call vectors. Frequent system call-related changes in the LINUX™ kernel require developers to repeatedly expend porting efforts. Interoperability among third-party products, including access control products, may be problematic. Therefore, there is a need in the art for a solution which overcomes the drawbacks described above.